package personal.leil.learning.digraph;

import java.util.ArrayList;

/**
 * 图中的一个节点
 *
 * @author Leil
 * @version 1.0
 * @since 2024-1-22
 */
public class Node {

    /**
     * 当前节点的值
     */
    public int value;

    /**
     * 当前节点的入度
     * <p>
     * <i>当前节点共有多少条边指向它</i>
     * </p>
     */
    public int in;


    /**
     * 当前节点的出度
     * <p>
     * <i>当前节点共有多少条边从其出发</i>
     * </p>
     */
    public int out;

    /**
     * 从该节点指向的节点的集合
     */
    public ArrayList<Node> nextNodes;

    /**
     * 从该节点引出的边
     */
    public ArrayList<Edge> edges;

    public Node(int value) {
        this.value = value;
        this.in = 0;
        this.out = 0;
        this.nextNodes = new ArrayList<>();
        this.edges = new ArrayList<>();
    }
}
